std::absに表現不可能な値(INT_MIN等)を渡した際の未定義動作について追記#1600
Merged
teruyamato0731 merged 4 commits intomasterfrom Apr 3, 2026
Merged
Conversation
Contributor
|
⚡ プレビュー (HTML) (更新時刻: 2026-04-03 10:58:01 JST) 変更記事一覧5件の記事が変更されました。
※ソース (.md) に直接変更のあった記事を列挙しています。グローバル修飾や変換規則の変更による変化は考慮していません。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
<cstdlib>と<cmath>のstd::absのページについて、以下の記述改善・追記を行います。表現不可能な値(INT_MIN等)を渡した際の未定義動作の追記
引数の絶対値が戻り値の型で表現できない場合、C/C++標準規格において未定義動作とされています。とくに一般的な2の補数表現のシステムにおいて
std::abs(INT_MIN)などとした場合にオーバーフローが発生し未定義動作となることは、躓きやすい落とし穴であるため## 備考に明記しました。出典:
C11標準規格ドラフト(N1570) 7.22.6.1
https://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf